﻿namespace Cap
{
    public interface ICapBuilder
    {
        ICapBuilder AddCapStrategy<TCapStrategy>(Func<IServiceProvider, TCapStrategy> configure)
            where TCapStrategy : ICapStrategy;

        ICapBuilder AddEventSource<TEventSource>(string subject, Action<TEventSource> configure)
            where TEventSource : IEventSource, new();

        ICapBuilder UseEndpoints(Action<IEndpointBuilder> endpoints);
    }
}
